home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / UNIX / TREEPAR / TKLEX.H < prev    next >
C/C++ Source or Header  |  1992-11-23  |  2KB  |  57 lines

  1. /* tklex.h - defines for tklex package
  2.  *
  3.  * 27.Jul.87  jimmc  Initial definition
  4.  * 18.Jan.88  jimmc  Move definition of TkInfo into this file from tklex.c
  5.  */
  6.  
  7. /* Token types */
  8. #define TkEOF (-1)
  9. #define TkOParen '('
  10. #define TkCParen ')'
  11. #define TkString '"'
  12. #define TkNumber '9'
  13. #define TkSymbol 'S'
  14.  
  15. typedef int (*INTFUNCPTR)();
  16.  
  17. typedef struct _TkInfo {
  18. /* All values in this structure are private to the Tk routines;
  19.  * the definition is included in this file only to allow the structure
  20.  * pointer to be used in the TkHandle typedef.
  21.  */
  22.     char *filename;    /* name of input file */
  23.     FILE *f;    /* input file pointer */
  24.     int lineno;    /* input line number (for error messages) */
  25.     int pushedtoken;    /* allow one token pushback */
  26.     char *pbchars;    /* pushed back characters */
  27.     int pballoc;    /* number of bytes allocated in pbchars */
  28.     int pbindex;    /* index into pbchars */
  29. /* If there are no chars pushed back, pbindex==pballoc; each time a char
  30.  * is pushed back, pbindex is decremented; each time one is read, it is
  31.  * incremented.  Thus, the pushback characters in pbchars are stored
  32.  * at the end of the pbchars array; printing pbchars[pbindex] will
  33.  * print the current push-back string.
  34.  * An extra null character is always left on the end (not counted in
  35.  * pballoc) so that this can be done (for debugging).
  36.  */
  37.     int stringalloc;    /* size of stringvalue buffer */
  38.     int stringcount;    /* number of chars used (not including null) */
  39.     char *stringvalue;    /* where we store the string values */
  40. /* The stringvalue buffer is used to collect strings which will later
  41.  * be returned to the caller.
  42.  */
  43. } TkInfo;
  44.  
  45. typedef TkInfo *TkHandle;
  46.  
  47. /* Routines */
  48. extern TkHandle TkInit();
  49. extern int  TkDone();
  50. extern int  TkGet();        /* get next token */
  51. extern int  TkNumberValue();    /* get value of token when TkNumber */
  52. extern char *TkStringValue();    /* get value of token when TkString */
  53. extern INTFUNCPTR TkSetFatalHandler();    /* set handler for errors */
  54. extern INTFUNCPTR TkSetFatalHandler();    /* set handler for errors */
  55.  
  56. /* end */
  57.